<?php
/**
 * @author thieu|quangthieuagu@gmail.com
 * @copyright 2011
 */
include('config.php');
global $page;
$page=1;
if(isset($_POST['name'])){
    $msg=submitProcess($conf,$db);
    if($msg!='ok'){
        $data=$_POST;
    }else{
        $data=array();
    }
}

function submitProcess($conf,$db){
    global $page;
    $msg='';
    $msg1='';
        
    $infoValid=CheckValidInfo();
    if(!$infoValid['suc']){
        $msg.=$infoValid['msg'];
    }
    //images
    $images=array();
    $j=0;
    for($i=1;$i<=5;$i++){
        if(!empty($_FILES['file'.$i]['name'])){
            $imagesValid = CheckUploadFileImage($_FILES['file'.$i],$conf['folder'],$i);
            if(!$imagesValid['suc']){
                $page=3;
                $msg1.=$imagesValid['msg'];
            }else{
                $images[]=$imagesValid['filename'];
            }
          $j=1;  
        }
    }
    //video
    $k=0;
    if(!empty($_FILES['videofile']['name'])){
            $videoValid = CheckUploadFileVideo($_FILES['videofile'],$conf['folder']);
            if(!$videoValid['suc']){
                $page=4;
                $msg1.=$videoValid['msg'];
            }else{
                $videoFileName=$videoValid['filename'];
            }
          $k=1;
    }
    
    if(empty($j)&&empty($k)){
        $page=3;
        return $msg.'Vui lòng upload hình hoặc video dự thi của bạn.';
    }
    
    if(!empty($msg)||!empty($msg1)){
        return $msg.$msg1;
    } 
      
    if($j==1){
        foreach($images as $key=>$image){
            if(!empty($image)){
                if(!uploadFileProcess($_FILES['file'.($key+1)],$conf['folder'],$image)){
                    return 'Đã xảy ra lỗi trong quá trình upload. Vui lòng liên hệ tới email '.$conf['email_admin'].' để được hỗ trợ.';
                    break;
                }
            }
        } 
    }
    
    if($k==1){
        if(!empty($videoFileName)){
        if(!uploadFileProcess($_FILES['videofile'],$conf['folder'],$videoFileName)){
                return 'Đã xảy ra lỗi trong quá trình upload. Vui lòng liên hệ tới email '.$conf['email_admin'].' để được hỗ trợ.';
                break;
            }
        }
    }
    
    $query="insert into users (`name`, birthday,country,job,email,phone,images1,images2,images3,images4,images5,video,`desc`,family,created_date) VALUES (
            '".$db->strSafe($_POST['name'])."', 
            '".$_POST['year']."-".$_POST['month']."-".$_POST['day']."', 
            '".(int)$_POST['country']."', 
            '".$db->strSafe($_POST['job'])."', 
            '".$db->strSafe($_POST['email'])."', 
            '".$db->strSafe($_POST['phone'])."', 
            '".$db->strSafe(@$images[0])."', 
            '".$db->strSafe(@$images[1])."',
            '".$db->strSafe(@$images[2])."',
            '".$db->strSafe(@$images[3])."',
            '".$db->strSafe(@$images[4])."',
            '".$db->strSafe(@$videoFileName)."',
            '".$db->strSafe($_POST['desc'])."',
            '".$db->strSafe($_POST['family'])."',
            ".strtotime('now').")";
    if(!$db->query($query)){
        return "Đã xảy ra lỗi trong quá trình lưu trữ thông tin của bạn. Vui lòng thử lại một lần nữa.";
    }
    
    //send mail thanks
    $subject=$conf['email_subject_thanks'];
    $content=$conf['email_content_thanks'];
    $from=$conf['email_from'];
    $fromname=$conf['from_name'];
    $to=$_POST['email'];
    $toname=$_POST['name'];
    $search  = array('[name]');
    $replace = array($toname);
    $content=str_replace($search, $replace, $content);
    sendMail($from,$fromname,$to,$toname,$subject,$content);
    
    //send mail thanks
    $subject=$conf['email_subject_notice'];
    $content=$conf['email_content_notice'];
    $from=$conf['email_from'];
    $fromname=$conf['from_name'];
    $to=$conf['email_admin'];
    $toname=$conf['admin_name'];
    $search1  = array('[name]','[birthday]','[citizenship]','[maritalstatus]','[maritalstatus]','[email]','[phone]','[time]','[total]','[job]');
    $citizenship=empty($_POST['country'])?'Đúng':'Sai';
    $maritalstatus=empty($_POST['family'])?'Độc thân':'Đã có gia đình';
    $total=$db->loadResult('select count(id) from users');
    $replace1 = array($_POST['name'],$_POST['year']."-".$_POST['month']."-".$_POST['day'],$citizenship,$maritalstatus,$_POST['email'],$_POST['phone'],date('d/m/Y'),(int)$total,$_POST['job']);
    $content=str_replace($search1, $replace1, $content);
    sendMail($from,$fromname,$to,$toname,$subject,$content);
    
    return 'ok';
}

/**
    * Send mail
    * @return boolean
    */
function sendMail($from,$fromname,$to,$toname,$subject,$message){

    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    
    // Additional headers
    $headers .= "To: $toname <$to>" . "\r\n";
    $headers .= "From: $fromname <$from>" . "\r\n";
  //  $headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
  //  $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
    
    // Mail it
    if(@mail($to, $subject, $message, $headers)){
        return true;
    }else{
        return false;
    }
}
/**
    * Check valid file video.
    *
    * @param  array   $file
    * @param  string  $folder folder store
    * @return array $result status|msg
    */
    
function CheckUploadFileVideo($file,$folder){
    $result=array();
    //extension alow upload
    $exitAlow=array('flv','avi','mov');
    //get extension of file is uploading
    $fileInfo=pathinfo($file['name']);
    $ext=$fileInfo['extension'];
    
    if(!in_array($ext,$exitAlow)){
        $result['msg'].="Bạn vui lòng chọn file video có dịnh dạng (flv|avi|mov).\\n";
      }
    
    if($file['size']>52428800){
        $result['msg'].="Bạn vui lòng chọn file video có kích thước nhỏ hơn 50M).\\n";
    }
    
    if(!empty($result['msg'])){
        $result['suc']=false;
        return $result;
    }
    
    $filename=create_file_name($_POST['name']);
    
    if(file_exists($folder.$filename.'.'.$ext)){
        $filename.='_'.strtotime('now').'.'.$ext;
    }else{
        $filename.='.'.$ext;
    }
    
    //$result['msg']="Hình $index: Bạn vui lòng chọn hình có kích thước nhỏ hơn 1M).";
    $result['suc']=true;
    $result['filename']=$filename;
    return $result;
}

/**
    * Check valid file image.
    *
    * @param  array   $file
    * @param  string  $folder folder store
    * @param  string  $index 
    * @return array $result status|msg
    */
function CheckUploadFileImage($file,$folder,$index){
    $result=array();
    //extension alow upload
    $exitAlow=array('jpg','gif','png');
    //get extension of file is uploading
    $fileInfo=pathinfo($file['name']);
    $ext=$fileInfo['extension'];
    
    if(!in_array($ext,$exitAlow)){
        $result['msg'].="Hình $index: Bạn vui lòng chọn hình có dịnh dạng (gif|png|jpg).\\n";
        
      }
    
    if($file['size']>1048576){
        $result['msg'].="Hình $index: Bạn vui lòng chọn hình có kích thước nhỏ hơn 1M).\\n";
    }
    
    if(!empty($result['msg'])){
        $result['suc']=false;
        return $result;
    }
    
    $filename=create_file_name($_POST['name']);
    
    if(file_exists($folder.$filename.$index.'.'.$ext)){
        $filename.='_'.strtotime('now').$index.'.'.$ext;
    }else{
        $filename.=$index.'.'.$ext;
    }
    
    //$result['msg']="Hình $index: Bạn vui lòng chọn hình có kích thước nhỏ hơn 1M).";
    $result['suc']=true;
    $result['filename']=$filename;
    return $result;
}
/**
    * Check valid information of use.
    * @return array $result status|msg
    */
function CheckValidInfo(){
    $result=array();
    
    if(empty($_POST['name'])){
        $result['msg'].="Vui lòng nhập tên của bạn.\\n";
    }
    
    $day=$_POST['day'];
    $month=$_POST['month'];
    $year=$_POST['year'];
    
    if($day<1||$day>31||$month<1||$month>12||$year<100){
        $result['msg'].="Ngày, tháng, năm sinh của bạn không hợp lệ.\\n";
        $t=1;
    }
    
    /*** a date before 1970 ***/
    //$dob = strtotime($month." ".$day." ".$year);
    /*** another date ***/
    //$tdate = strtotime(date('m')." ".date('d')." ".date('Y'));
    /*** show the date ***/
    //$old=getAge( $dob, $tdate );
    //check old
    /*if(($old<25||$old>35)&&empty($t)){
        $result['msg'].="Cám ơn bạn đã quan tâm đến The most stylist job in Vietnam! Tuy nhiên, rất tiếc là bạn không nằm trong độ tuổi được phép truy cập website.";
    }
    */
    if(empty($_POST['job'])){
        $result['msg'].="Vui lòng nhập nghề nghiệp.\\n";
    }
    
    if(empty($_POST['email'])){
        $result['msg'].="Vui lòng nhập email.\\n";
    }
    
    if(empty($_POST['phone'])){
        $result['msg'].="Vui lòng nhập phone.\\n";
    }
    
    if(!empty($result['msg'])){
        $result['suc']=false;
        return $result;
    }
    
    //$result['msg']="Hình $index: Bạn vui lòng chọn hình có kích thước nhỏ hơn 1M).";
    $result['suc']=true;
    return $result;
}
/**
    * Move file to server
    * @return boolean 
    */
function uploadFileProcess($file,$folder,$filename){
    if(move_uploaded_file($file["tmp_name"],$folder.$filename)){
        return true;
    }
    return false;
}
/**
    * Create auto file name
    * @return string new file name
    */
function create_file_name($string)
{
    
    $marTViet=array('à','á','ạ','ả','ã','â','ầ','ấ','ậ','ẩ','ẫ','ă',
    'ằ','ắ','ặ','ẳ','ẵ','è','é','ẹ','ẻ','ẽ','ê','ề'
    ,'ế','ệ','ể','ễ',
    'ì','í','ị','ỉ','ĩ',
    'ò','ó','ọ','ỏ','õ','ô','ồ','ố','ộ','ổ','ỗ','ơ'
    ,'ờ','ớ','ợ','ở','ỡ',
    'ù','ú','ụ','ủ','ũ','ư','ừ','ứ','ự','ử','ữ',
    'ỳ','ý','ỵ','ỷ','ỹ',
    'đ',
    'À','Á','Ạ','Ả','Ã','Â','Ầ','Ấ','Ậ','Ẩ','Ẫ','Ă'
    ,'Ằ','Ắ','Ặ','Ẳ','Ẵ',
    'È','É','Ẹ','Ẻ','Ẽ','Ê','Ề','Ế','Ệ','Ể','Ễ',
    'Ì','Í','Ị','Ỉ','Ĩ',
    'Ò','Ó','Ọ','Ỏ','Õ','Ô','Ồ','Ố','Ộ','Ổ','Ỗ','Ơ'
    ,'Ờ','Ớ','Ợ','Ở','Ỡ',
    'Ù','Ú','Ụ','Ủ','Ũ','Ư','Ừ','Ứ','Ự','Ử','Ữ',
    'Ỳ','Ý','Ỵ','Ỷ','Ỹ',
    'Đ',' ',
    'A','B','C','D','E','G','H','I','K','L','M','N','O','P','Q','R','S','T','U','V','X','Y',
    '/','-','_','`'
    );
    $marKoDau=array('a','a','a','a','a','a','a','a','a','a','a'
    ,'a','a','a','a','a','a',
    'e','e','e','e','e','e','e','e','e','e','e',
    'i','i','i','i','i',
    'o','o','o','o','o','o','o','o','o','o','o','o'
    ,'o','o','o','o','o',
    'u','u','u','u','u','u','u','u','u','u','u',
    'y','y','y','y','y',
    'd',
    'a','a','a','a','a','a','a','a','a','a','a','a'
    ,'a','a','a','a','a',
    'e','e','e','e','e','e','e','e','e','e','e',
    'i','i','i','i','i',
    'o','o','o','o','o','o','o','o','o','o','o','o'
    ,'o','o','o','o','o',
    'u','u','u','u','u','u','u','u','u','u','u',
    'y','y','y','y','y',
    'd','_','a','b','c','d','e','g','h','i','k','l','m','b','o','p','q','r','s','t','u','v','x','y',
    '_','_','_','');
    $newsString= str_replace($marTViet,$marKoDau,$string);
    return $newsString; 
}
 /**
    * Calculator age
    * @return int $age
    */
 function getAge( $dob, $tdate )
 {
    $age = 0;
    
    while( $tdate > $dob = strtotime('+1 year', $dob))
    {
        ++$age;
    }
    
    return $age;
 }

?>